package mya.mes.mdc.model.alarm;

import mya.common.model.entity.BaseEntity;

import javax.persistence.Column;
import javax.persistence.MappedSuperclass;

@MappedSuperclass
public class MdcAlarmBase extends BaseEntity {

    /**
     * <code>AlarmType</code>的ObjectId
     */
    protected Long alarmTypeId;

    /**
     * EXCEL文件总rdbTag
     */
    @Column(length = 6)
    protected String mdcTag;

    /**
     * 对应MdcTag中定义的数组的index
     */
    public Integer bitIndex;


    protected Long zoneId;


    /**
     * 报警号：报警日期 + 流水号（6位长度);
     */
    protected String alarmNo;

    /**
     * 系统报警
     */
    public Boolean systemAlarm;

    /**
     * 报警日期
     */
    public String alarmDate;

    /**
     * 报警时间
     */
    public String alarmTime;


    public Long alarmDTime;

    /**
     * 报警日流水号
     */
    public Integer alarmSeq;


    /**
     * 关闭日期
     */
    public String closeDate;

    /**
     * 关闭时间
     */
    public String closeTime;


    public Long closeDTime;


    /**
     * 报警车间
     */
    public String shop;

    /**
     * 报警区域,如BD1/SECTION1
     */
    public String area;

    /**
     * 报警区域：如 SECTION1
     */
    public String section;

    /**
     * 报警点,如TC01 = ViewTag
     */
    public String point;


    /**
     * true =表示设备在维修
     */
    public Boolean maint = false;


    /**
     * 报警状态, TRUE = 已经关闭， FALSE=未关闭
     */
    public Boolean isClosed = false;

//  /**
//   * 触发时间
//   */
//  public String dtStart;
//
//  /**
//   * 关闭时间
//   */
//  public String dtClose;

    /**
     * 报警持续时间:1小时10分钟20秒
     */
    public String timeSpan;

    /**
     * 报警持续时间：秒
     */
    public Long timeSpanSec;

    /**
     * 报警内容(默认为中文) :zhCN
     */
    public String zhCN;

    /**
     * 报警内容（英文）
     */
    public String enUs;


    /**
     * 发送公众号消息
     */
    public Boolean msgNotice;


    public Long timestamp;


    /**
     * 等待时间(毫秒）之后，才发送到责任人
     */
    public Long timeWaitToPerson;
    /**
     * 等待时间(毫秒）之后，才发送到管理人员
     */
    public Long timeWaitToManager;


    /**
     * 该报警需要发送
     */
    protected Boolean needToSend = false;
    /**
     * 已经发送到责任人
     */
    public Boolean hasSentToPerson = false;

    /**
     * 已经发送到管理人员
     */
    public Boolean hasSentToManager = false;


    /**
     * 微信公众号用户标签
     */
    public String wxPersonTag;

    /**
     * 微信公众号管理人员用户标签
     */
    public String wxManagerTag;


    public Long getAlarmTypeId() {
        return alarmTypeId;
    }

    public void setAlarmTypeId(Long alarmTypeId) {
        this.alarmTypeId = alarmTypeId;
    }

    public String getMdcTag() {
        return mdcTag;
    }

    public void setMdcTag(String mdcTag) {
        this.mdcTag = mdcTag;
    }

    public Integer getBitIndex() {
        return bitIndex;
    }

    public void setBitIndex(Integer bitIndex) {
        this.bitIndex = bitIndex;
    }

    public Long getZoneId() {
        return zoneId;
    }

    public void setZoneId(Long zoneId) {
        this.zoneId = zoneId;
    }

    public String getAlarmNo() {
        return alarmNo;
    }

    public void setAlarmNo(String alarmNo) {
        this.alarmNo = alarmNo;
    }

    public Boolean getSystemAlarm() {
        return systemAlarm;
    }

    public void setSystemAlarm(Boolean systemAlarm) {
        this.systemAlarm = systemAlarm;
    }

    public String getAlarmDate() {
        return alarmDate;
    }

    public void setAlarmDate(String alarmDate) {
        this.alarmDate = alarmDate;
    }

    public String getAlarmTime() {
        return alarmTime;
    }

    public void setAlarmTime(String alarmTime) {
        this.alarmTime = alarmTime;
    }

    public Long getAlarmDTime() {
        return alarmDTime;
    }

    public void setAlarmDTime(Long alarmDTime) {
        this.alarmDTime = alarmDTime;
    }

    public Integer getAlarmSeq() {
        return alarmSeq;
    }

    public void setAlarmSeq(Integer alarmSeq) {
        this.alarmSeq = alarmSeq;
    }

    public String getCloseDate() {
        return closeDate;
    }

    public void setCloseDate(String closeDate) {
        this.closeDate = closeDate;
    }

    public String getCloseTime() {
        return closeTime;
    }

    public void setCloseTime(String closeTime) {
        this.closeTime = closeTime;
    }

    public Long getCloseDTime() {
        return closeDTime;
    }

    public void setCloseDTime(Long closeDTime) {
        this.closeDTime = closeDTime;
    }

    public String getShop() {
        return shop;
    }

    public void setShop(String shop) {
        this.shop = shop;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String getSection() {
        return section;
    }

    public void setSection(String section) {
        this.section = section;
    }

    public String getPoint() {
        return point;
    }

    public void setPoint(String point) {
        this.point = point;
    }

    public Boolean getMaint() {
        return maint;
    }

    public void setMaint(Boolean maint) {
        this.maint = maint;
    }

    public Boolean getClosed() {
        return isClosed;
    }

    public void setClosed(Boolean closed) {
        isClosed = closed;
    }

    public String getTimeSpan() {
        return timeSpan;
    }

    public void setTimeSpan(String timeSpan) {
        this.timeSpan = timeSpan;
    }

    public Long getTimeSpanSec() {
        return timeSpanSec;
    }

    public void setTimeSpanSec(Long timeSpanSec) {
        this.timeSpanSec = timeSpanSec;
    }

    public String getZhCN() {
        return zhCN;
    }

    public void setZhCN(String zhCN) {
        this.zhCN = zhCN;
    }

    public String getEnUs() {
        return enUs;
    }

    public void setEnUs(String enUs) {
        this.enUs = enUs;
    }

    public Boolean getMsgNotice() {
        return msgNotice;
    }

    public void setMsgNotice(Boolean msgNotice) {
        this.msgNotice = msgNotice;
    }

    public Long getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(Long timestamp) {
        this.timestamp = timestamp;
    }

    public Long getTimeWaitToPerson() {
        return timeWaitToPerson;
    }

    public void setTimeWaitToPerson(Long timeWaitToPerson) {
        this.timeWaitToPerson = timeWaitToPerson;
    }

    public Long getTimeWaitToManager() {
        return timeWaitToManager;
    }

    public void setTimeWaitToManager(Long timeWaitToManager) {
        this.timeWaitToManager = timeWaitToManager;
    }

    public Boolean getHasSentToPerson() {
        return hasSentToPerson;
    }

    public void setHasSentToPerson(Boolean hasSentToPerson) {
        this.hasSentToPerson = hasSentToPerson;
    }

    public Boolean getHasSentToManager() {
        return hasSentToManager;
    }

    public void setHasSentToManager(Boolean hasSentToManager) {
        this.hasSentToManager = hasSentToManager;
    }

    public String getWxPersonTag() {
        return wxPersonTag;
    }

    public void setWxPersonTag(String wxPersonTag) {
        this.wxPersonTag = wxPersonTag;
    }

    public String getWxManagerTag() {
        return wxManagerTag;
    }

    public void setWxManagerTag(String wxManagerTag) {
        this.wxManagerTag = wxManagerTag;
    }
}
